package com.snack.shop.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;

import java.util.Arrays;

/**
 * RestTemplate 配置
 * 用于调用微信等第三方接口
 */
@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        
        // 添加支持 text/plain 的 JSON 转换器
        // 因为微信接口返回的 Content-Type 是 text/plain，但内容是 JSON
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setSupportedMediaTypes(Arrays.asList(
                MediaType.APPLICATION_JSON,
                MediaType.TEXT_PLAIN,  // 支持 text/plain（微信接口）
                MediaType.TEXT_HTML    // 支持 text/html（有些第三方接口）
        ));
        
        restTemplate.getMessageConverters().add(0, converter);
        
        return restTemplate;
    }
}

